Authored: Kathy N. Lam

Date: January 13, 2020

Updated: April 12, 2021

Set up

library(flowCore) #for reading and manipulating flow data
library(ggcyto) #for using ggplot with flow data
library(scales) #for nice plot axes
library(cowplot) #for multi panel plots
library(Phenoflow) #for rarefying
library(tidyverse) #for data wrangling and plotting

Read data

(fs = read.flowSet(path="data_fcs"))
## A flowSet with 100 experiments.
## 
##   column names:
##   530/30 Blue B-A 610/20 YG C-A FSC-A FSC-H FSC-W SSC-A SSC-H SSC-W Time
colnames(fs) 
## [1] "530/30 Blue B-A" "610/20 YG C-A"   "FSC-A"           "FSC-H"          
## [5] "FSC-W"           "SSC-A"           "SSC-H"           "SSC-W"          
## [9] "Time"
pData(phenoData(fs))
#read in sample info
metadata = read_tsv("metadata.tsv") %>%
    rename(name=Filename) %>%
    mutate(Mouse = paste("Mouse", Mouse)) %>%
    mutate(Day = paste("Day", Timepoint)) %>%
    mutate(Treatment_Mouse = paste0(Treatment, "\n", Mouse)) %>%
    mutate(Mouse_Treatment = paste0(Mouse, " (", Treatment, ")"))
## Parsed with column specification:
## cols(
##   FlowSampleNumber = col_double(),
##   `Mouse Sample Number` = col_double(),
##   Experiment = col_character(),
##   Treatment = col_character(),
##   Mouse = col_double(),
##   Timepoint = col_double(),
##   Processing = col_character(),
##   CollectEvents = col_character(),
##   Filename = col_character(),
##   Notes = col_logical()
## )
metadata$Mouse = factor(metadata$Mouse, levels=unique(metadata$Mouse))
metadata$Treatment_Mouse = factor(metadata$Treatment_Mouse, levels=unique(metadata$Treatment_Mouse))
metadata$Treatment = factor(metadata$Treatment, levels=unique(metadata $Treatment))
metadata$Day = factor(metadata$Day, levels=unique(metadata$Day))
metadata
#add columns to phenoData  
phenoData(fs)$Order = seq(1, length(phenoData(fs)$name))
phenoData(fs)$Treatment = metadata$Treatment
phenoData(fs)$Timepoint = metadata$Timepoint
phenoData(fs)$Day = metadata$Day
phenoData(fs)$Name = metadata$name
phenoData(fs)$Mouse = metadata$Mouse
phenoData(fs)$Treatment_Mouse = metadata$Treatment_Mouse
phenoData(fs)$Mouse_Treatment = metadata$Mouse_Treatment
pData(phenoData(fs))
#make labeller function for facet_wrap
order = as.character(phenoData(fs)$Order)
name = phenoData(fs)$Name

order_names = mapply(c, order, name, SIMPLIFY = FALSE) #make a one-to-one 
order_names = lapply(order_names, `[[`, 2) #keep second element of each vector in the list
order_names = order_names[as.character(sort(as.numeric(names(order_names))))] #numerically sort 

order_labeller = function(variable,value){
  return(order_names[value])
}

Gate on scatter

scatter = rbind(c(0,   1e4), 
                c(1e5, 1e4),
                c(1e5, 2.5e5),  
                c(0,   2.5e5))
colnames(scatter)=c("FSC-A", "SSC-A")
scatter = as.data.frame(scatter)

ggplot() + 
    geom_point(data=fs, aes(x=`FSC-A`, y=`SSC-A`), shape=16, size=0.75, alpha=0.5) +
    scale_y_continuous(name="SSC-A (Granularity)\n", limits = c(-2e1,3e5)) +
    scale_x_continuous(name="\nFSC-A (Size)", limit=c(-2e1,3e5)) +
    facet_grid(Mouse~Timepoint) +
    theme_linedraw(14) +
    theme(panel.grid = element_blank(), axis.text.x=element_text(angle=90,hjust=1)) +
    geom_polygon(data=scatter, aes(x=`FSC-A`, y=`SSC-A`), fill=NA, colour="indianred", size=0.5,  linetype="solid") 
## Warning: Removed 29191 rows containing missing values (geom_point).


gate_scatter = polygonGate(filterId="scatter", `FSC-A` = scatter$`FSC-A`, `SSC-A` = scatter$`SSC-A`) 
result = flowCore::filter(fs, gate_scatter)
events = flowCore::Subset(fs, result)

Rarefy

events = Phenoflow::FCS_resample(events, replace = FALSE)
## Your samples range between 57249 and 90877 cells
## Your samples were randomly subsampled to 57249 cells

Gate on fluoresence

red = rbind(
    c(-1e3,   4e3),
    c(-1e3,   4e5),
    c( 4000,  4e5),
    c( 1000,  4e3))
colnames(red)=c("530/30 Blue B-A", "610/20 YG C-A")
red = as.data.frame(red)

green = rbind(
    c(9e2,   -1e3),
    c(4.5e3,  800),
    c(1.5e5,    800),
    c(1.5e5,   -1e3))
colnames(green)=c("530/30 Blue B-A", "610/20 YG C-A")
green = as.data.frame(green)

ggplot() + 
    geom_polygon(data=green, aes(x=`530/30 Blue B-A`, y=`610/20 YG C-A`), fill=NA, colour="green4", size=0.5, linetype="solid") +
    geom_polygon(data=red, aes(x=`530/30 Blue B-A`, y=`610/20 YG C-A`), fill=NA, colour="red3", size=0.5, linetype="solid") +
    geom_point(data=events, aes(x=`530/30 Blue B-A`, y=`610/20 YG C-A`), shape=16, size=0.5, alpha=0.2) +
    theme_linedraw(12) +
    ggcyto::scale_y_flowjo_biexp(name="mCherry intensity", widthBasis=-500, pos=5, neg=0, breaks=c(0, 1e3,1e4,1e5), limits=c(-1e3, 4e5)) +
    ggcyto::scale_x_flowjo_biexp(name="GFP intensity", widthBasis=-500, pos=5, neg=0, breaks=c(0, 1e3,1e4,1e5), limits=c(-1e3, 1.5e5)) +
    theme(panel.grid = element_blank(), 
          axis.title.x = element_text(colour="green4"), 
          axis.title.y = element_text(colour="red3")) +
    facet_grid(Mouse~Timepoint)  
## Warning: Removed 55 rows containing missing values (geom_point).

gate_green = polygonGate(filterId="green", `530/30 Blue B-A` = green$`530/30 Blue B-A`, `610/20 YG C-A` = green$`610/20 YG C-A`)
result_green = flowCore::filter(events, gate_green)
events_green = Subset(events, result_green)
gate_red = polygonGate(filterId="red", `530/30 Blue B-A` = red$`530/30 Blue B-A`, `610/20 YG C-A` = red$`610/20 YG C-A`)
result_red = flowCore::filter(events, gate_red)
events_red = Subset(events, result_red)
percent_red = toTable(summary(result_red)) %>% 
    mutate(x=2e5, y=2e5, colour="red", order=phenoData(events)$order) %>%
    rename(name=sample) %>%
    left_join(metadata, by="name")
## filter summary for frame 'Specimen_001_Sample_001_001.fcs'
##  red+: 7 of 57249 events (0.01%)
## 
## filter summary for frame 'Specimen_001_Sample_002_002.fcs'
##  red+: 2128 of 57249 events (3.72%)
## 
## filter summary for frame 'Specimen_001_Sample_003_003.fcs'
##  red+: 3445 of 57249 events (6.02%)
## 
## filter summary for frame 'Specimen_001_Sample_004_004.fcs'
##  red+: 871 of 57249 events (1.52%)
## 
## filter summary for frame 'Specimen_001_Sample_005_005.fcs'
##  red+: 84 of 57249 events (0.15%)
## 
## filter summary for frame 'Specimen_001_Sample_006_006.fcs'
##  red+: 2 of 57249 events (0.00%)
## 
## filter summary for frame 'Specimen_001_Sample_007_007.fcs'
##  red+: 6111 of 57249 events (10.67%)
## 
## filter summary for frame 'Specimen_001_Sample_008_008.fcs'
##  red+: 2313 of 57249 events (4.04%)
## 
## filter summary for frame 'Specimen_001_Sample_009_009.fcs'
##  red+: 24646 of 57249 events (43.05%)
## 
## filter summary for frame 'Specimen_001_Sample_010_010.fcs'
##  red+: 15093 of 57249 events (26.36%)
## 
## filter summary for frame 'Specimen_001_Sample_011_011.fcs'
##  red+: 12 of 57249 events (0.02%)
## 
## filter summary for frame 'Specimen_001_Sample_012_012.fcs'
##  red+: 3739 of 57249 events (6.53%)
## 
## filter summary for frame 'Specimen_001_Sample_013_013.fcs'
##  red+: 1318 of 57249 events (2.30%)
## 
## filter summary for frame 'Specimen_001_Sample_014_014.fcs'
##  red+: 469 of 57249 events (0.82%)
## 
## filter summary for frame 'Specimen_001_Sample_015_015.fcs'
##  red+: 63 of 57249 events (0.11%)
## 
## filter summary for frame 'Specimen_001_Sample_016_016.fcs'
##  red+: 0 of 57249 events (0.00%)
## 
## filter summary for frame 'Specimen_001_Sample_017_017.fcs'
##  red+: 3808 of 57249 events (6.65%)
## 
## filter summary for frame 'Specimen_001_Sample_018_018.fcs'
##  red+: 4 of 57249 events (0.01%)
## 
## filter summary for frame 'Specimen_001_Sample_019_019.fcs'
##  red+: 6 of 57249 events (0.01%)
## 
## filter summary for frame 'Specimen_001_Sample_020_020.fcs'
##  red+: 0 of 57249 events (0.00%)
## 
## filter summary for frame 'Specimen_001_Sample_021_021.fcs'
##  red+: 4 of 57249 events (0.01%)
## 
## filter summary for frame 'Specimen_001_Sample_022_022.fcs'
##  red+: 7879 of 57249 events (13.76%)
## 
## filter summary for frame 'Specimen_001_Sample_023_023.fcs'
##  red+: 366 of 57249 events (0.64%)
## 
## filter summary for frame 'Specimen_001_Sample_024_024.fcs'
##  red+: 45 of 57249 events (0.08%)
## 
## filter summary for frame 'Specimen_001_Sample_025_025.fcs'
##  red+: 3 of 57249 events (0.01%)
## 
## filter summary for frame 'Specimen_001_Sample_026_026.fcs'
##  red+: 30 of 57249 events (0.05%)
## 
## filter summary for frame 'Specimen_001_Sample_027_027.fcs'
##  red+: 3844 of 57249 events (6.71%)
## 
## filter summary for frame 'Specimen_001_Sample_028_028.fcs'
##  red+: 69 of 57249 events (0.12%)
## 
## filter summary for frame 'Specimen_001_Sample_029_029.fcs'
##  red+: 6 of 57249 events (0.01%)
## 
## filter summary for frame 'Specimen_001_Sample_030_030.fcs'
##  red+: 1 of 57249 events (0.00%)
## 
## filter summary for frame 'Specimen_001_Sample_031_031.fcs'
##  red+: 1 of 57249 events (0.00%)
## 
## filter summary for frame 'Specimen_001_Sample_032_032.fcs'
##  red+: 5351 of 57249 events (9.35%)
## 
## filter summary for frame 'Specimen_001_Sample_033_033.fcs'
##  red+: 10 of 57249 events (0.02%)
## 
## filter summary for frame 'Specimen_001_Sample_034_034.fcs'
##  red+: 5 of 57249 events (0.01%)
## 
## filter summary for frame 'Specimen_001_Sample_035_035.fcs'
##  red+: 21 of 57249 events (0.04%)
## 
## filter summary for frame 'Specimen_001_Sample_036_036.fcs'
##  red+: 0 of 57249 events (0.00%)
## 
## filter summary for frame 'Specimen_001_Sample_037_037.fcs'
##  red+: 10360 of 57249 events (18.10%)
## 
## filter summary for frame 'Specimen_001_Sample_038_038.fcs'
##  red+: 37 of 57249 events (0.06%)
## 
## filter summary for frame 'Specimen_001_Sample_039_039.fcs'
##  red+: 11 of 57249 events (0.02%)
## 
## filter summary for frame 'Specimen_001_Sample_040_040.fcs'
##  red+: 308 of 57249 events (0.54%)
## 
## filter summary for frame 'Specimen_001_Sample_041_041.fcs'
##  red+: 3 of 57249 events (0.01%)
## 
## filter summary for frame 'Specimen_001_Sample_042_042.fcs'
##  red+: 3860 of 57249 events (6.74%)
## 
## filter summary for frame 'Specimen_001_Sample_043_043.fcs'
##  red+: 17 of 57249 events (0.03%)
## 
## filter summary for frame 'Specimen_001_Sample_044_044.fcs'
##  red+: 46 of 57249 events (0.08%)
## 
## filter summary for frame 'Specimen_001_Sample_045_045.fcs'
##  red+: 2229 of 57249 events (3.89%)
## 
## filter summary for frame 'Specimen_001_Sample_046_046.fcs'
##  red+: 0 of 57249 events (0.00%)
## 
## filter summary for frame 'Specimen_001_Sample_047_047.fcs'
##  red+: 3454 of 57249 events (6.03%)
## 
## filter summary for frame 'Specimen_001_Sample_048_048.fcs'
##  red+: 3019 of 57249 events (5.27%)
## 
## filter summary for frame 'Specimen_001_Sample_049_049.fcs'
##  red+: 12427 of 57249 events (21.71%)
## 
## filter summary for frame 'Specimen_001_Sample_050_050.fcs'
##  red+: 1554 of 57249 events (2.71%)
## 
## filter summary for frame 'Specimen_001_Sample_051_051.fcs'
##  red+: 0 of 57249 events (0.00%)
## 
## filter summary for frame 'Specimen_001_Sample_052_052.fcs'
##  red+: 2094 of 57249 events (3.66%)
## 
## filter summary for frame 'Specimen_001_Sample_053_053.fcs'
##  red+: 9773 of 57249 events (17.07%)
## 
## filter summary for frame 'Specimen_001_Sample_054_054.fcs'
##  red+: 7501 of 57249 events (13.10%)
## 
## filter summary for frame 'Specimen_001_Sample_055_055.fcs'
##  red+: 6134 of 57249 events (10.71%)
## 
## filter summary for frame 'Specimen_001_Sample_056_056.fcs'
##  red+: 6 of 57249 events (0.01%)
## 
## filter summary for frame 'Specimen_001_Sample_057_057.fcs'
##  red+: 5165 of 57249 events (9.02%)
## 
## filter summary for frame 'Specimen_001_Sample_058_058.fcs'
##  red+: 13290 of 57249 events (23.21%)
## 
## filter summary for frame 'Specimen_001_Sample_059_059.fcs'
##  red+: 4378 of 57249 events (7.65%)
## 
## filter summary for frame 'Specimen_001_Sample_060_060.fcs'
##  red+: 15974 of 57249 events (27.90%)
## 
## filter summary for frame 'Specimen_001_Sample_061_061.fcs'
##  red+: 3 of 57249 events (0.01%)
## 
## filter summary for frame 'Specimen_001_Sample_062_062.fcs'
##  red+: 2664 of 57249 events (4.65%)
## 
## filter summary for frame 'Specimen_001_Sample_063_063.fcs'
##  red+: 8 of 57249 events (0.01%)
## 
## filter summary for frame 'Specimen_001_Sample_064_064.fcs'
##  red+: 1 of 57249 events (0.00%)
## 
## filter summary for frame 'Specimen_001_Sample_065_065.fcs'
##  red+: 19406 of 57249 events (33.90%)
## 
## filter summary for frame 'Specimen_001_Sample_066_066.fcs'
##  red+: 0 of 57249 events (0.00%)
## 
## filter summary for frame 'Specimen_001_Sample_067_067.fcs'
##  red+: 5234 of 57249 events (9.14%)
## 
## filter summary for frame 'Specimen_001_Sample_068_068.fcs'
##  red+: 7 of 57249 events (0.01%)
## 
## filter summary for frame 'Specimen_001_Sample_069_069.fcs'
##  red+: 6 of 57249 events (0.01%)
## 
## filter summary for frame 'Specimen_001_Sample_070_070.fcs'
##  red+: 14 of 57249 events (0.02%)
## 
## filter summary for frame 'Specimen_001_Sample_071_071.fcs'
##  red+: 5 of 57249 events (0.01%)
## 
## filter summary for frame 'Specimen_001_Sample_072_072.fcs'
##  red+: 3407 of 57249 events (5.95%)
## 
## filter summary for frame 'Specimen_001_Sample_073_073.fcs'
##  red+: 7204 of 57249 events (12.58%)
## 
## filter summary for frame 'Specimen_001_Sample_074_074.fcs'
##  red+: 5397 of 57249 events (9.43%)
## 
## filter summary for frame 'Specimen_001_Sample_075_075.fcs'
##  red+: 1162 of 57249 events (2.03%)
## 
## filter summary for frame 'Specimen_001_Sample_076_076.fcs'
##  red+: 18 of 57249 events (0.03%)
## 
## filter summary for frame 'Specimen_001_Sample_077_077.fcs'
##  red+: 2687 of 57249 events (4.69%)
## 
## filter summary for frame 'Specimen_001_Sample_078_078.fcs'
##  red+: 17987 of 57249 events (31.42%)
## 
## filter summary for frame 'Specimen_001_Sample_079_079.fcs'
##  red+: 15985 of 57249 events (27.92%)
## 
## filter summary for frame 'Specimen_001_Sample_080_080.fcs'
##  red+: 7412 of 57249 events (12.95%)
## 
## filter summary for frame 'Specimen_001_Sample_081_081.fcs'
##  red+: 0 of 57249 events (0.00%)
## 
## filter summary for frame 'Specimen_001_Sample_082_082.fcs'
##  red+: 2242 of 57249 events (3.92%)
## 
## filter summary for frame 'Specimen_001_Sample_083_083.fcs'
##  red+: 35880 of 57249 events (62.67%)
## 
## filter summary for frame 'Specimen_001_Sample_084_084.fcs'
##  red+: 16570 of 57249 events (28.94%)
## 
## filter summary for frame 'Specimen_001_Sample_085_085.fcs'
##  red+: 1266 of 57249 events (2.21%)
## 
## filter summary for frame 'Specimen_001_Sample_086_086.fcs'
##  red+: 1 of 57249 events (0.00%)
## 
## filter summary for frame 'Specimen_001_Sample_087_087.fcs'
##  red+: 4533 of 57249 events (7.92%)
## 
## filter summary for frame 'Specimen_001_Sample_088_088.fcs'
##  red+: 10528 of 57249 events (18.39%)
## 
## filter summary for frame 'Specimen_001_Sample_089_089.fcs'
##  red+: 14476 of 57249 events (25.29%)
## 
## filter summary for frame 'Specimen_001_Sample_090_090.fcs'
##  red+: 9587 of 57249 events (16.75%)
## 
## filter summary for frame 'Specimen_001_Sample_091_091.fcs'
##  red+: 0 of 57249 events (0.00%)
## 
## filter summary for frame 'Specimen_001_Sample_092_092.fcs'
##  red+: 2815 of 57249 events (4.92%)
## 
## filter summary for frame 'Specimen_001_Sample_093_093.fcs'
##  red+: 7160 of 57249 events (12.51%)
## 
## filter summary for frame 'Specimen_001_Sample_094_094.fcs'
##  red+: 11810 of 57249 events (20.63%)
## 
## filter summary for frame 'Specimen_001_Sample_095_095.fcs'
##  red+: 10922 of 57249 events (19.08%)
## 
## filter summary for frame 'Specimen_001_Sample_096_096.fcs'
##  red+: 2 of 57249 events (0.00%)
## 
## filter summary for frame 'Specimen_001_Sample_097_097.fcs'
##  red+: 2148 of 57249 events (3.75%)
## 
## filter summary for frame 'Specimen_001_Sample_098_098.fcs'
##  red+: 10304 of 57249 events (18.00%)
## 
## filter summary for frame 'Specimen_001_Sample_099_099.fcs'
##  red+: 24632 of 57249 events (43.03%)
## 
## filter summary for frame 'Specimen_001_Sample_100_100.fcs'
##  red+: 1615 of 57249 events (2.82%)
percent_green = toTable(summary(result_green)) %>%
    mutate(x=2e5, y=1e5, colour="green", order=phenoData(events)$order) %>%
    rename(name=sample) %>%
    left_join(metadata, by="name")
## filter summary for frame 'Specimen_001_Sample_001_001.fcs'
##  green+: 169 of 57249 events (0.30%)
## 
## filter summary for frame 'Specimen_001_Sample_002_002.fcs'
##  green+: 4433 of 57249 events (7.74%)
## 
## filter summary for frame 'Specimen_001_Sample_003_003.fcs'
##  green+: 9183 of 57249 events (16.04%)
## 
## filter summary for frame 'Specimen_001_Sample_004_004.fcs'
##  green+: 15397 of 57249 events (26.89%)
## 
## filter summary for frame 'Specimen_001_Sample_005_005.fcs'
##  green+: 6643 of 57249 events (11.60%)
## 
## filter summary for frame 'Specimen_001_Sample_006_006.fcs'
##  green+: 114 of 57249 events (0.20%)
## 
## filter summary for frame 'Specimen_001_Sample_007_007.fcs'
##  green+: 7191 of 57249 events (12.56%)
## 
## filter summary for frame 'Specimen_001_Sample_008_008.fcs'
##  green+: 5543 of 57249 events (9.68%)
## 
## filter summary for frame 'Specimen_001_Sample_009_009.fcs'
##  green+: 1101 of 57249 events (1.92%)
## 
## filter summary for frame 'Specimen_001_Sample_010_010.fcs'
##  green+: 13375 of 57249 events (23.36%)
## 
## filter summary for frame 'Specimen_001_Sample_011_011.fcs'
##  green+: 380 of 57249 events (0.66%)
## 
## filter summary for frame 'Specimen_001_Sample_012_012.fcs'
##  green+: 6319 of 57249 events (11.04%)
## 
## filter summary for frame 'Specimen_001_Sample_013_013.fcs'
##  green+: 9156 of 57249 events (15.99%)
## 
## filter summary for frame 'Specimen_001_Sample_014_014.fcs'
##  green+: 19618 of 57249 events (34.27%)
## 
## filter summary for frame 'Specimen_001_Sample_015_015.fcs'
##  green+: 7049 of 57249 events (12.31%)
## 
## filter summary for frame 'Specimen_001_Sample_016_016.fcs'
##  green+: 187 of 57249 events (0.33%)
## 
## filter summary for frame 'Specimen_001_Sample_017_017.fcs'
##  green+: 9619 of 57249 events (16.80%)
## 
## filter summary for frame 'Specimen_001_Sample_018_018.fcs'
##  green+: 20746 of 57249 events (36.24%)
## 
## filter summary for frame 'Specimen_001_Sample_019_019.fcs'
##  green+: 12315 of 57249 events (21.51%)
## 
## filter summary for frame 'Specimen_001_Sample_020_020.fcs'
##  green+: 8330 of 57249 events (14.55%)
## 
## filter summary for frame 'Specimen_001_Sample_021_021.fcs'
##  green+: 160 of 57249 events (0.28%)
## 
## filter summary for frame 'Specimen_001_Sample_022_022.fcs'
##  green+: 19545 of 57249 events (34.14%)
## 
## filter summary for frame 'Specimen_001_Sample_023_023.fcs'
##  green+: 12210 of 57249 events (21.33%)
## 
## filter summary for frame 'Specimen_001_Sample_024_024.fcs'
##  green+: 19077 of 57249 events (33.32%)
## 
## filter summary for frame 'Specimen_001_Sample_025_025.fcs'
##  green+: 18803 of 57249 events (32.84%)
## 
## filter summary for frame 'Specimen_001_Sample_026_026.fcs'
##  green+: 564 of 57249 events (0.99%)
## 
## filter summary for frame 'Specimen_001_Sample_027_027.fcs'
##  green+: 5216 of 57249 events (9.11%)
## 
## filter summary for frame 'Specimen_001_Sample_028_028.fcs'
##  green+: 7887 of 57249 events (13.78%)
## 
## filter summary for frame 'Specimen_001_Sample_029_029.fcs'
##  green+: 9119 of 57249 events (15.93%)
## 
## filter summary for frame 'Specimen_001_Sample_030_030.fcs'
##  green+: 22112 of 57249 events (38.62%)
## 
## filter summary for frame 'Specimen_001_Sample_031_031.fcs'
##  green+: 71 of 57249 events (0.12%)
## 
## filter summary for frame 'Specimen_001_Sample_032_032.fcs'
##  green+: 6332 of 57249 events (11.06%)
## 
## filter summary for frame 'Specimen_001_Sample_033_033.fcs'
##  green+: 420 of 57249 events (0.73%)
## 
## filter summary for frame 'Specimen_001_Sample_034_034.fcs'
##  green+: 9824 of 57249 events (17.16%)
## 
## filter summary for frame 'Specimen_001_Sample_035_035.fcs'
##  green+: 18094 of 57249 events (31.61%)
## 
## filter summary for frame 'Specimen_001_Sample_036_036.fcs'
##  green+: 33 of 57249 events (0.06%)
## 
## filter summary for frame 'Specimen_001_Sample_037_037.fcs'
##  green+: 15976 of 57249 events (27.91%)
## 
## filter summary for frame 'Specimen_001_Sample_038_038.fcs'
##  green+: 434 of 57249 events (0.76%)
## 
## filter summary for frame 'Specimen_001_Sample_039_039.fcs'
##  green+: 294 of 57249 events (0.51%)
## 
## filter summary for frame 'Specimen_001_Sample_040_040.fcs'
##  green+: 1565 of 57249 events (2.73%)
## 
## filter summary for frame 'Specimen_001_Sample_041_041.fcs'
##  green+: 239 of 57249 events (0.42%)
## 
## filter summary for frame 'Specimen_001_Sample_042_042.fcs'
##  green+: 6356 of 57249 events (11.10%)
## 
## filter summary for frame 'Specimen_001_Sample_043_043.fcs'
##  green+: 323 of 57249 events (0.56%)
## 
## filter summary for frame 'Specimen_001_Sample_044_044.fcs'
##  green+: 230 of 57249 events (0.40%)
## 
## filter summary for frame 'Specimen_001_Sample_045_045.fcs'
##  green+: 6104 of 57249 events (10.66%)
## 
## filter summary for frame 'Specimen_001_Sample_046_046.fcs'
##  green+: 116 of 57249 events (0.20%)
## 
## filter summary for frame 'Specimen_001_Sample_047_047.fcs'
##  green+: 6658 of 57249 events (11.63%)
## 
## filter summary for frame 'Specimen_001_Sample_048_048.fcs'
##  green+: 12566 of 57249 events (21.95%)
## 
## filter summary for frame 'Specimen_001_Sample_049_049.fcs'
##  green+: 11329 of 57249 events (19.79%)
## 
## filter summary for frame 'Specimen_001_Sample_050_050.fcs'
##  green+: 345 of 57249 events (0.60%)
## 
## filter summary for frame 'Specimen_001_Sample_051_051.fcs'
##  green+: 69 of 57249 events (0.12%)
## 
## filter summary for frame 'Specimen_001_Sample_052_052.fcs'
##  green+: 3710 of 57249 events (6.48%)
## 
## filter summary for frame 'Specimen_001_Sample_053_053.fcs'
##  green+: 754 of 57249 events (1.32%)
## 
## filter summary for frame 'Specimen_001_Sample_054_054.fcs'
##  green+: 2685 of 57249 events (4.69%)
## 
## filter summary for frame 'Specimen_001_Sample_055_055.fcs'
##  green+: 476 of 57249 events (0.83%)
## 
## filter summary for frame 'Specimen_001_Sample_056_056.fcs'
##  green+: 406 of 57249 events (0.71%)
## 
## filter summary for frame 'Specimen_001_Sample_057_057.fcs'
##  green+: 12624 of 57249 events (22.05%)
## 
## filter summary for frame 'Specimen_001_Sample_058_058.fcs'
##  green+: 439 of 57249 events (0.77%)
## 
## filter summary for frame 'Specimen_001_Sample_059_059.fcs'
##  green+: 4118 of 57249 events (7.19%)
## 
## filter summary for frame 'Specimen_001_Sample_060_060.fcs'
##  green+: 471 of 57249 events (0.82%)
## 
## filter summary for frame 'Specimen_001_Sample_061_061.fcs'
##  green+: 277 of 57249 events (0.48%)
## 
## filter summary for frame 'Specimen_001_Sample_062_062.fcs'
##  green+: 4915 of 57249 events (8.59%)
## 
## filter summary for frame 'Specimen_001_Sample_063_063.fcs'
##  green+: 383 of 57249 events (0.67%)
## 
## filter summary for frame 'Specimen_001_Sample_064_064.fcs'
##  green+: 152 of 57249 events (0.27%)
## 
## filter summary for frame 'Specimen_001_Sample_065_065.fcs'
##  green+: 1061 of 57249 events (1.85%)
## 
## filter summary for frame 'Specimen_001_Sample_066_066.fcs'
##  green+: 93 of 57249 events (0.16%)
## 
## filter summary for frame 'Specimen_001_Sample_067_067.fcs'
##  green+: 9428 of 57249 events (16.47%)
## 
## filter summary for frame 'Specimen_001_Sample_068_068.fcs'
##  green+: 465 of 57249 events (0.81%)
## 
## filter summary for frame 'Specimen_001_Sample_069_069.fcs'
##  green+: 172 of 57249 events (0.30%)
## 
## filter summary for frame 'Specimen_001_Sample_070_070.fcs'
##  green+: 441 of 57249 events (0.77%)
## 
## filter summary for frame 'Specimen_001_Sample_071_071.fcs'
##  green+: 183 of 57249 events (0.32%)
## 
## filter summary for frame 'Specimen_001_Sample_072_072.fcs'
##  green+: 6567 of 57249 events (11.47%)
## 
## filter summary for frame 'Specimen_001_Sample_073_073.fcs'
##  green+: 617 of 57249 events (1.08%)
## 
## filter summary for frame 'Specimen_001_Sample_074_074.fcs'
##  green+: 356 of 57249 events (0.62%)
## 
## filter summary for frame 'Specimen_001_Sample_075_075.fcs'
##  green+: 33 of 57249 events (0.06%)
## 
## filter summary for frame 'Specimen_001_Sample_076_076.fcs'
##  green+: 442 of 57249 events (0.77%)
## 
## filter summary for frame 'Specimen_001_Sample_077_077.fcs'
##  green+: 4816 of 57249 events (8.41%)
## 
## filter summary for frame 'Specimen_001_Sample_078_078.fcs'
##  green+: 165 of 57249 events (0.29%)
## 
## filter summary for frame 'Specimen_001_Sample_079_079.fcs'
##  green+: 468 of 57249 events (0.82%)
## 
## filter summary for frame 'Specimen_001_Sample_080_080.fcs'
##  green+: 114 of 57249 events (0.20%)
## 
## filter summary for frame 'Specimen_001_Sample_081_081.fcs'
##  green+: 58 of 57249 events (0.10%)
## 
## filter summary for frame 'Specimen_001_Sample_082_082.fcs'
##  green+: 3912 of 57249 events (6.83%)
## 
## filter summary for frame 'Specimen_001_Sample_083_083.fcs'
##  green+: 32 of 57249 events (0.06%)
## 
## filter summary for frame 'Specimen_001_Sample_084_084.fcs'
##  green+: 180 of 57249 events (0.31%)
## 
## filter summary for frame 'Specimen_001_Sample_085_085.fcs'
##  green+: 308 of 57249 events (0.54%)
## 
## filter summary for frame 'Specimen_001_Sample_086_086.fcs'
##  green+: 86 of 57249 events (0.15%)
## 
## filter summary for frame 'Specimen_001_Sample_087_087.fcs'
##  green+: 7998 of 57249 events (13.97%)
## 
## filter summary for frame 'Specimen_001_Sample_088_088.fcs'
##  green+: 74 of 57249 events (0.13%)
## 
## filter summary for frame 'Specimen_001_Sample_089_089.fcs'
##  green+: 177 of 57249 events (0.31%)
## 
## filter summary for frame 'Specimen_001_Sample_090_090.fcs'
##  green+: 191 of 57249 events (0.33%)
## 
## filter summary for frame 'Specimen_001_Sample_091_091.fcs'
##  green+: 61 of 57249 events (0.11%)
## 
## filter summary for frame 'Specimen_001_Sample_092_092.fcs'
##  green+: 16815 of 57249 events (29.37%)
## 
## filter summary for frame 'Specimen_001_Sample_093_093.fcs'
##  green+: 299 of 57249 events (0.52%)
## 
## filter summary for frame 'Specimen_001_Sample_094_094.fcs'
##  green+: 1369 of 57249 events (2.39%)
## 
## filter summary for frame 'Specimen_001_Sample_095_095.fcs'
##  green+: 3502 of 57249 events (6.12%)
## 
## filter summary for frame 'Specimen_001_Sample_096_096.fcs'
##  green+: 146 of 57249 events (0.26%)
## 
## filter summary for frame 'Specimen_001_Sample_097_097.fcs'
##  green+: 5419 of 57249 events (9.47%)
## 
## filter summary for frame 'Specimen_001_Sample_098_098.fcs'
##  green+: 147 of 57249 events (0.26%)
## 
## filter summary for frame 'Specimen_001_Sample_099_099.fcs'
##  green+: 177 of 57249 events (0.31%)
## 
## filter summary for frame 'Specimen_001_Sample_100_100.fcs'
##  green+: 67 of 57249 events (0.12%)
percentage = bind_rows(percent_red, percent_green) %>%
    group_by(name) %>% 
    mutate(total_gfp_mcherry = sum(true)) %>%
    mutate(fraction_fluor = round(true/total_gfp_mcherry, 3)) %>%
    mutate(percent_fluor = fraction_fluor*100) %>%
    mutate(label = paste(true, "events"))
ggplot() + 
    geom_point(data=events, aes(x=`530/30 Blue B-A`, y=`610/20 YG C-A`), shape=16, size=0.5, alpha=0.2, colour="black") +
    geom_point(data=events_green, aes(x=`530/30 Blue B-A`, y=`610/20 YG C-A`), shape=16, size=0.5, alpha=0.2, colour="green4") +
    geom_point(data=events_red, aes(x=`530/30 Blue B-A`, y=`610/20 YG C-A`), shape=16, size=0.5, alpha=0.2, colour="red3") +
    geom_text(data=percentage, aes(x=x, y=y, label=label, colour=colour), size=3, hjust=1) +
    geom_text(data=percentage, aes(x=2e5, y=4e5, label=paste0(count, " events total")), colour="grey27", size=3, hjust=1) +
    scale_colour_manual(values=c("green4", "red3")) +
    ggcyto::scale_y_flowjo_biexp(name="mCherry intensity", widthBasis=-500, pos=5, neg=0, breaks=c(0, 1e3,1e4,1e5), limits=c(-1e3, 5.5e5)) +
    ggcyto::scale_x_flowjo_biexp(name="GFP intensity", widthBasis=-500, pos=5, neg=0, breaks=c(0, 1e3,1e4,1e5), limits=c(-1e3, 3e5)) +
    theme_linedraw(12) +
    theme(panel.grid = element_blank(), 
          axis.title.x = element_text(colour="green4"), 
          axis.title.y = element_text(colour="red3"), 
          legend.position = "none") +
    facet_grid(Mouse~Timepoint) 
## Warning: Removed 3 rows containing missing values (geom_point).

ggsave("figures/exp17_GFP_mCherry_scatterplot.png", width=12, height=40, dpi=150)
## Warning: Removed 3 rows containing missing values (geom_point).

Log session

sessionInfo()
## R version 4.0.3 (2020-10-10)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.2 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] forcats_0.5.0             stringr_1.4.0            
##  [3] dplyr_1.0.4               purrr_0.3.4              
##  [5] readr_1.3.1               tidyr_1.1.0              
##  [7] tibble_3.0.6              tidyverse_1.3.0          
##  [9] Phenoflow_1.1.2           foreach_1.5.0            
## [11] flowAI_1.19.1             flowFDA_0.99             
## [13] mclust_5.4.6              multcomp_1.4-13          
## [15] TH.data_1.0-10            MASS_7.3-53              
## [17] survival_3.2-7            mvtnorm_1.1-0            
## [19] flowFP_1.47.0             flowViz_1.53.0           
## [21] lattice_0.20-41           flowClean_1.27.0         
## [23] cowplot_1.0.0             scales_1.1.1             
## [25] ggcyto_1.17.0             flowWorkspace_4.1.1      
## [27] ncdfFlow_2.35.0           BH_1.72.0-3              
## [29] RcppArmadillo_0.9.900.1.0 ggplot2_3.3.2            
## [31] flowCore_2.1.0           
## 
## loaded via a namespace (and not attached):
##   [1] readxl_1.3.1         changepoint_2.2.2    backports_1.1.8     
##   [4] plyr_1.8.6           igraph_1.2.5         splines_4.0.3       
##   [7] digest_0.6.25        htmltools_0.4.0      fansi_0.4.1         
##  [10] magrittr_1.5         cluster_2.1.0        sfsmisc_1.1-7       
##  [13] recipes_0.1.12       Biostrings_2.57.1    modelr_0.1.8        
##  [16] gower_0.2.1          RcppParallel_5.0.1   matrixStats_0.56.0  
##  [19] sandwich_2.5-1       cytolib_2.1.2        jpeg_0.1-8.1        
##  [22] colorspace_1.4-1     rvest_0.3.5          blob_1.2.1          
##  [25] haven_2.3.1          xfun_0.14            crayon_1.3.4        
##  [28] jsonlite_1.6.1       hexbin_1.28.1        graph_1.67.1        
##  [31] zoo_1.8-8            iterators_1.0.12     ape_5.4             
##  [34] glue_1.4.2           gtable_0.3.0         ipred_0.9-9         
##  [37] zlibbioc_1.35.0      XVector_0.29.1       phyloseq_1.33.0     
##  [40] IDPmisc_1.1.20       Rgraphviz_2.33.0     Rhdf5lib_1.11.0     
##  [43] BiocGenerics_0.35.3  DBI_1.1.0            Rcpp_1.0.4.6        
##  [46] bit_1.1-15.2         stats4_4.0.3         lava_1.6.7          
##  [49] prodlim_2019.11.13   httr_1.4.1           RColorBrewer_1.1-2  
##  [52] ellipsis_0.3.1       farver_2.0.3         pkgconfig_2.0.3     
##  [55] XML_3.99-0.3         nnet_7.3-14          dbplyr_1.4.4        
##  [58] caret_6.0-86         labeling_0.3         tidyselect_1.1.0    
##  [61] rlang_0.4.10         reshape2_1.4.4       munsell_0.5.0       
##  [64] cellranger_1.1.0     tools_4.0.3          cli_2.0.2           
##  [67] generics_0.1.0       ade4_1.7-15          broom_0.5.6         
##  [70] evaluate_0.14        biomformat_1.17.0    yaml_2.2.1          
##  [73] ModelMetrics_1.2.2.2 knitr_1.28           fs_1.4.1            
##  [76] nlme_3.1-149         xml2_1.3.2           rstudioapi_0.11     
##  [79] compiler_4.0.3       png_0.1-7            reprex_0.3.0        
##  [82] stringi_1.4.6        Matrix_1.2-18        vegan_2.5-6         
##  [85] permute_0.9-5        multtest_2.45.0      vctrs_0.3.6         
##  [88] pillar_1.4.4         lifecycle_0.2.0      data.table_1.12.8   
##  [91] R6_2.4.1             latticeExtra_0.6-29  KernSmooth_2.23-17  
##  [94] gridExtra_2.3        RProtoBufLib_2.1.0   IRanges_2.23.6      
##  [97] codetools_0.2-16     boot_1.3-25          assertthat_0.2.1    
## [100] rhdf5_2.33.0         withr_2.2.0          S4Vectors_0.27.10   
## [103] mgcv_1.8-33          parallel_4.0.3       hms_0.5.3           
## [106] grid_4.0.3           rpart_4.1-15         timeDate_3043.102   
## [109] class_7.3-17         rmarkdown_2.2        pROC_1.16.2         
## [112] Biobase_2.49.0       lubridate_1.7.9.2